// 配置API接口地址
// var root = 'https://gs.bndxqc.com/gp/api/2.0/'; 
var root = 'http://tfs.juboon.com/gp/api/2.0/'; 

// 引用axios
var axios = require('axios');
//跨域携带cookies
// axios.defaults.withCredentials = true;
// 自定义判断元素类型JS
function toType (obj) {
    return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
}
// 参数过滤函数
function filterNull (o) {
    for (var key in o) {
        if (o[key] == null) {
            delete o[key];
        }
        if (toType(o[key]) == 'string') {
            o[key] = o[key].trim();
        } else if (toType(o[key]) == 'object') {
            o[key] = filterNull(o[key]);
        } else if (toType(o[key]) == 'array') {
            o[key] = filterNull(o[key]);
        }
    }
    return o;
}

function apiAxios (method, url, params, success) {
    if (params) {
        params = filterNull(params);
    }
    axios({
        method: method,
        url: url,
        data: (method == 'POST' || method == 'PUT') ? params: null,
        params: (method == 'GET' || method == 'DELETE') ? params : null,
        baseURL: root
    })
    .then(function (res) {
        if (success) {
            success(res.data);
        }
 })
 .catch(function () { 
     
 })
}

 
// 返回在vue模板中的调用接口
export default {
    get: function (url, params, success, failure) {
        return apiAxios('GET', url, params, success, failure);
    },
    post: function (url, params, success, failure) {
        return apiAxios('POST', url, params, success, failure);
    },
    put: function (url, params, success, failure) {
        return apiAxios('PUT', url, params, success, failure);
    },
    delete: function (url, params, success, failure) {
        return apiAxios('DELETE', url, params, success, failure);
    } 
}